/*
 * Copyright 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.navigation.compose.internal

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.animation.SizeTransform
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.tween
import androidx.navigation.NavBackStackEntry

internal actual object DefaultNavTransitions {
    actual val enterTransition:
        AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition = {
            TODO("AnimatedContentTransitionScope<NavBackStackEntry>.()")
//            slideIntoContainer(
//                towards = AnimatedContentTransitionScope.SlideDirection.Start,
//                animationSpec = tween(
//                    durationMillis = 200,
//                    easing = LinearEasing
//                )
//            )
        }
    actual val exitTransition:
        AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition  = {
//            slideOutOfContainer(
//                towards = AnimatedContentTransitionScope.SlideDirection.Start,
//                animationSpec = tween(
//                    durationMillis = 200,
//                    easing = LinearEasing
//                ),
//                targetOffset = { fullOffset -> (fullOffset * 0.3f).toInt() }
//            )
            TODO("AnimatedContentTransitionScope<NavBackStackEntry>.()")
        }
    val popEnterTransition:
        AnimatedContentTransitionScope<NavBackStackEntry>.() -> EnterTransition = {
//        slideIntoContainer(
//            towards = AnimatedContentTransitionScope.SlideDirection.End,
//            animationSpec = tween(
//                durationMillis = 200,
//                easing = LinearEasing
//            ),
//            initialOffset = { fullOffset -> (fullOffset * 0.3f).toInt() }
//        )
        TODO("AnimatedContentTransitionScope<NavBackStackEntry>.()")
    }
    val popExitTransition:
        AnimatedContentTransitionScope<NavBackStackEntry>.() -> ExitTransition = {
//        slideOutOfContainer(
//            towards = AnimatedContentTransitionScope.SlideDirection.End,
//            animationSpec = tween(
//                durationMillis = 200,
//                easing = LinearEasing
//            )
//        )
            TODO("AnimatedContentTransitionScope<NavBackStackEntry>.()")
    }
    actual val sizeTransform:
        (AnimatedContentTransitionScope<NavBackStackEntry>.() -> SizeTransform?)? = null
}
